let Config = require("./Config");

// logger.js - 通用日志工具
let logDir = "/sdcard/autojs_logs/";
let logFile = `${logDir}${Config.logfile()}`;

files.ensureDir(logDir);

function now() {
    return new Date().toLocaleString();
}

// 内部：格式化一行日志
function formatLog(level, msg) {
    return `[${level}] ${now()} - ${msg}`;
}

// 写入并裁剪日志
function writeLog(line) {
    let lines = [];
    if (files.exists(logFile)) {
        lines = files.read(logFile).split("\n").filter(Boolean);
    }
    lines.push(line);
    if (lines.length > Config.logMaxLines()) {
        lines = lines.slice(-Config.logMaxLines()); // 只保留最近的
    }
    files.write(logFile, lines.join("\n") + "\n");
}

// 公共接口
const Logger = {
    info(msg) {
        let line = formatLog("INFO", msg);
        console.log(line);
        writeLog(line);
    },
    debug(msg) {
        let line = formatLog("DEBUG", msg);
        console.log(line);
        writeLog(line);
    },
    warn(msg) {
        let line = formatLog("WARN", msg);
        console.warn(line);
        writeLog(line);
    },
    error(msg) {
        let line = formatLog("ERROR", msg);
        console.error(line);
        writeLog(line);
    },
    // 获取日志内容
    getLog() {
        return files.exists(logFile) ? files.read(logFile) : "";
    },
    clear() {
        files.remove(logFile);
        this.info("日志已清空");
    }
};

module.exports = Logger;
